import axios from 'axios';

// 创建 Axios 实例
const service = axios.create({
    baseURL: import.meta.env.VITE_API_BASE_URL, // API 基础 URL
    timeout: 5000, // 请求超时时间
});

// 请求拦截器
service.interceptors.request.use(
    (config) => {
        // 在发送请求之前做些什么
        const token = localStorage.getItem('token'); // 从本地存储获取 token
        if (token) {
            config.headers['Authorization'] = `Bearer ${token}`; // 设置 Authorization 头
        }
        return config;
    },
    (error) => {
        // 处理请求错误
        console.error('Request error:', error);
        return Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    (response) => {
        // 对响应数据做点什么
        return response.data;
    },
    (error) => {
        // 处理响应错误
        console.error('Response error:', error);
        if (error.response && error.response.status === 401) {
            // 处理未授权错误
            console.warn('Unauthorized, redirecting to login...');
            this.$router.push({ name: 'Login' });
            // 可以跳转到登录页面或其他处理
        }
        return Promise.reject(error);
    }
);

export default service;